package com.rockwell.robot2015.model.detectors;

import org.opencv.core.Point;
import org.opencv.core.Rect;

import com.rockwell.robot2015.model.ColorBlobInfo;

public interface IDetector {
	public static float FOV_WIDTH_BOUNDARY = 0.75f;
	public static float FOV_HEIGHT_BOUNDARY = 0.05f;
	public static int MIN_BARRIER_RADIUS = 150;
	public static float TREASURE_CENTER_TOLERANCE = 0.3f;
	public static float TREASURE_CENTER_POSITION_X = 1.0f;
	public static float TREASURE_CENTER_POSITION_Y = 0.5f;
	
	public void setEnabled(boolean enabled);
	
	public boolean isPresent();

	public Point getDrift();
	
	public Point getCenter();

	public int getRadius();
	
	public Rect getBoundingRect();
	
	public int getWidth(); //To get width of screen, may change to length depending on orientation of phone
	public int getHeight();
	
	public void reset();
	
	public void onDetect(boolean present, ColorBlobInfo info, int length, int width);
	
	public boolean detectLine();
	
	public Point[] getLine();
}
